home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Scene 96
/
Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso
/
misc
/
coding
/
vgacodng
/
part07_b.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-11-22
|
1KB
|
59 lines
program ShadeBob1;
uses crt;
var Pal : array[0..767] of byte;
n1,n2 : byte;
procedure SetPalette;assembler; { Setzt die Palette in Pal }
asm
mov dx,3C8h
xor al,al
out dx,al
mov cx,768
mov dx,3C9h
mov si,offset pal
@Jmp1:
lodsb
out dx,al
loop @Jmp1
end;
procedure BluePal; { Schreibt eine blaue Palette in Pal setzt sie mittels }
var loop : integer; { SetPalette }
begin
for loop := 0 to 31 do begin
pal[loop*3+2] := loop * 2;
pal[(63-loop)*3+2] := loop * 2;
pal[(loop+64)*3+2] := loop * 2;
pal[(127-loop)*3+2] := loop * 2;
pal[(loop+128)*3+2] := loop * 2;
pal[(191-loop)*3+2] := loop * 2;
pal[(loop+192)*3+2] := loop * 2;
pal[(255-loop)*3+2] := loop * 2;
end;
setpalette;
end;
procedure SetBob(x,y:word); { Setzt ein Bob an die Koords X,Y }
var n1,n2 : byte;
begin
for n1 := 0 to 19 do { Hier werden in einem 20x20 Pixel großen Quadrat }
for n2 := 0 to 19 do { alle Pixelwerte um 1 erhöht }
mem[$A000:(n2+y)*320+n1+x] := mem[$A000:(n2+y)*320+n1+x] + 1;
end;
begin
asm mov ax,13h; int 10h end;
BluePal;
randomize;
repeat
SetBob(random(300),random(180)); { Bob an zufällige Position setzen }
until keypressed;
readkey;
asm mov ax,3; int 10h end;
end.